﻿using System;
using System.Collections.Generic;
using vudu.Datos.SqlServer;
using System.Data;
using vudu.ClasesDominio;

using vudu.Logica.Clases;//Mientras tanto

namespace vudu.Datos.Fachada
{
    public class EnlaceDatos
    {
        #region VU_1 Gestionar Salones

        public int InsertarSalon(Salon miSalon,int universidad)
        {
            return new SqlServerSalon().InsertarSalon(miSalon,universidad);
        }


        public List<String> ConsultarSalonNombre(string nombre, String universidad)
        {
            return null;
        }

        public List<String> ConsultarSalonInabilitados(String universidad)
        {
            return null;
        }

        public List<String> ConsultarSalonEdificio(string edificio, String universidad)
        {
            return null;
        }

        public List<String> ConsultarSalonTipo(string tipo, String universidad)
        {
            return null;
        }

        public List<String> ConsultarTodosLosSalones()
        {
            return null;
        }

        public List<Salon> ConsultarSalon(int opcion,string busqueda,Universidad miUniversidad)
        {
            
            switch (opcion)
            {
                case 1:
                    return new SqlServerSalon().ConsultarSalonNombre(busqueda, miUniversidad);
                    break;
                case 2:
                    return new SqlServerSalon().ConsultarSalonEdificio(busqueda, miUniversidad);
                    break;
                case 3:
                    return new SqlServerSalon().ConsultarSalonTipo(busqueda, miUniversidad);
                    break;
            }
            
            return new SqlServerSalon().ConsultarSalones(miUniversidad.IdUniv);
        }

        public List<Edificio> ConsultarEdificios(int idUniversidad)
        {
            return new SqlServerSalon().ConsultarEdificio(idUniversidad);
        }

        public int EliminarSalon(Salon miSalon)
        {
           return new SqlServerSalon().EliminarSalon(miSalon);
            
        }

        public int ModificarSalon(Salon miSalon, int universidad)
        {
            return new SqlServerSalon().ModificarSalon(miSalon, universidad);

        }
        #endregion VU_1 Gestionar Salones

        #region VU_2 Gestionar Escuelas

        public int AgregarEscuela(Escuela escuela, string _nombreUniversidad)
        {
            return new SqlServerEscuela().InsertarEscuela(escuela, _nombreUniversidad);
        }

        public List<int> ConsultarIdPensumActivos(String estatusEscuela, int idEscuela)
        {
            return new SqlServerEscuela().ConsultarIdPensumActivos(estatusEscuela, idEscuela);
        }

        public List<int> ConsultarIdMateriasActivas(String estatusEscuela, int idEscuela)
        {
            return new SqlServerEscuela().ConsultarIdMateriasActivas(estatusEscuela, idEscuela);
        }

        public List<Escuela> ConsultarEscuela(String universidad)
        {
            return new SqlServerEscuela().SeleccionListaEscuela(universidad);
        }

        public int ModificarEscuela(Escuela escuela, string _nombreUniversidad)
        {
            return new SqlServerEscuela().ModificarEscuela(escuela, _nombreUniversidad);
        }

        public bool EliminarEscuela(int idEscuela)
        {
            return new SqlServerEscuela().EliminarEscuela(idEscuela);
        }

        #endregion VU_2 Gestionar Escuelas

        #region VU_3 Gestionar Pensum de cada Escuela

        public int CrearPensum(Pensum pensum)
        {
            return new SqlServerPensum().insertarPensum(pensum);
        }

        public List<Escuela> ConsultarEscuelasVecinas(int idEscuela)
        {
            return new SqlServerEscuela().ConsultarEscuelasVecinas(idEscuela);
        }

        public List<Materia> ConsultarMateriasPorEscuela(int idEscuela)
        {
            return new SqlServerMateria().ConsultarMateriasPorEscuela(idEscuela);
        }

        public List<Prelacion> ConsultarMateriasDePensum(int idPensum)
        {
            return new SqlServerPensum().ConsultarMateriasPensum(idPensum);
        }

        public List<Materia> ConsultarPrelacionesDeMateria(int idPensum, int codigoMateria)
        {
            return new SqlServerPensum().materiasNecesarias(idPensum, codigoMateria);
        }

        public bool AgregarMateriaEnPensum(int idPensum, int idMateriaSemestre, int semestre)
        {
            return new SqlServerPensum().insertarMateriaEnPensum(idMateriaSemestre, semestre, idPensum);
        }

        public List<Pensum> ConsultarPensumInactivos(int idEscuela)
        {
            return new SqlServerPensum().ConsultarPensumInactivos(idEscuela);
        }

        public List<Pensum> ConsultarPensumArchivados(int idEscuela)
        {
            return new SqlServerPensum().ConsultarPensumArchivados(idEscuela);
        }

        public List<Prelacion> ConsultarMateriasDePensumPorSemestre(int idPensum, int numSemestre)
        {
            return new SqlServerPensum().ConsultarMateriasDePensumPorSemestre(idPensum, numSemestre);
        }

        public List<Prelacion> ConsultarMateriasDePensumDeSemestresInferiores(int idPensum, int numSemestre, int idMateria)
        {
            return new SqlServerPensum().ConsultarMateriasDeSemestresInferiores(idPensum, numSemestre, idMateria);
        }

        public bool InsertarPrelacionDeMateria(int miMateriaActual, int idMateriaPrela, int idPensum)
        {
            return new SqlServerPensum().insertarPrelacionDeMateria(miMateriaActual, idMateriaPrela, idPensum);
        }

        public bool EliminarPrelacion(int miMateriaActual, int idMateriaPrela, int idPensum)
        {
            return new SqlServerPensum().EliminarPrelacionDeMateria(miMateriaActual, idMateriaPrela, idPensum);
        }

        public bool EliminarMateriaPensum(int miMateriaActual, int idPensum)
        {
            return new SqlServerPensum().EliminarMateriaDePensum(miMateriaActual, idPensum);
        }

        public bool eliminarPensum(int id)
        {
            return new SqlServerPensum().EliminarPensum(id);
        }

        public Pensum CosnultarPensumActivo(int idEscuela)
        {
            return new SqlServerPensum().ConsultarPensumActivo(idEscuela);
        }

        public bool ArchivarPensum(int idPensum)
        {
            return new SqlServerPensum().ArchivarPensum(idPensum);
        }

        public int ConsultarPeriodoActual()
        {
            return new SqlServerPensum().ConsultarPeriodoActual();
        }

        public bool ActivarUnPensum(int idPensum, int idPeriodo)
        {
            return new SqlServerPensum().ActivarPensum(idPensum, idPeriodo);
        }

        public List<Materia> ConsultarMateriaEscuela(int idEscuela)
        {
            return new SqlServerPensum().ConsultarMateriaEscuela(idEscuela);
        }

        public List<SeccionMateria> ConsultarMateriaSeccion(int idMateria)
        {
            return new SqlServerPensum().ConsultarMateriaSeccion(idMateria);
        }

        public List<Estudiante> ConsultarEstudiantesSeccionG3(int idSeccion)
        {
            return new SqlServerPensum().ConsultarEstudiantesSeccion(idSeccion);
        }

        #endregion VU_3 Gestionar Pensum de cada Escuela

        #region VU_4 Gestionar Materias

        public int AgregarMateria(Materia materia, int idEscuela)
        {
            return new SqlServerMateria().AgregarMateria(materia, idEscuela);
        }


        public int EditarMateria(Materia materia)
        {
            return new SqlServerMateria().EditarMateria(materia);
        }

        public int EliminarMateria(int idMateria)
        {
            return new SqlServerMateria().EliminarMateria(idMateria);
        }


        public List<Materia> ConsultarMateriasEscuela(int idEscuela)
        {

            return new SqlServerMateria().ConsultarMateriasEscuela(idEscuela);
        }


        public List<Materia> ConsultarTodasLasMaterias()
        {
            return new SqlServerMateria().ConsultarTodasLasMaterias();
        }

        public int ConsultarMateria(String codigo, int tipoConsulta)
        {
            return 0;//new SqlServerMateria().ConsultarMateria(codigo,tipoConsulta);
        }



        public int EliminarMateria(String materia)
        {
            return 0;
        }

        public bool ModificarMateria(List<String[]> campos, String materia)
        {
            return false;
        }

        #endregion VU_4 Gestionar Materias

        #region VU_5 Gestionar Practicas por Materia

        public Escuela ArmarEscuela(string correoEscuela)
        {
            return new SqlServerPractica().ArmarEscuela(correoEscuela);
        }

        public bool AgregarPractica(Practica practica, int idSeccionMateria)
        {
            return new SqlServerPractica().AgregarPractica(practica, idSeccionMateria);
        }

        public bool AgregarHorarioClase(HorarioDeClase horarioDeClase, int idPractica)
        {
            return new SqlServerPractica().AgregarHorarioClase(horarioDeClase, idPractica);
        }

        public List<Materia> ObtenerMateriasActivasConSeccTeoria(string nombreEscuela)
        {
            return new SqlServerPractica().MateriasDisponibles(nombreEscuela);
        }

        public List<Profesor> ListaProfesores(int idEscuela)
        {
            return new SqlServerPractica().ConsultarProfesor(idEscuela);
        }

        public List<SeccionMateria> ListaSeccionesMateria(int idEscuela, int idMateria)
        {
            return new SqlServerPractica().ConsultarSeccionMateria(idEscuela, idMateria);
        }

        public int UltimoIdPractica()
        {
            return new SqlServerPractica().UltimoIdPractica();
        }

        public List<Practica> ConsultarPracticasDadaSeccionMateria(int idSeccionMateria)
        {
            return new SqlServerPractica().ConsultarNombrePractica( idSeccionMateria );
        }

        public bool EliminarPractica(int idPractica)
        {
            return new SqlServerPractica().EliminarPractica(idPractica);
        }

        public List<HorarioDeClase> ConsultarPractica(int idPractica)
        {
            return new SqlServerPractica().ConsultarHorasPracticas(idPractica);
         
        }

        public bool ModificarPractica(Practica miPractica)
        {
            SqlServerPractica sql = new SqlServerPractica();
            bool retorno = false;

            // MODIFICO EL PROFESOR SI SE CAMBIO
            if (sql.ModificarProfesor(miPractica.profesor.Crn, miPractica.IdPractica))
            {
                // RECORRO LISTA DE HORARIOS
                for (int contador = 0; contador < miPractica.horarioDeClase.Count; contador++)
                {
                    HorarioDeClase horarioActual = new HorarioDeClase();
                    horarioActual = miPractica.horarioDeClase[contador];

                    // MODIFICO LOS SALONES DE CUALQUIER DIA SI SE CAMBIO
                    //if (sql.ModificarSalon(miPractica.IdPractica, horarioActual.IdHorarioClase, horarioActual.SalonDeClase.NumeroSalon))
                    //{
                        // MODIFICO EL HORARIO SI SE CAMBIO
                        retorno = sql.ModificarHorarioPractica(horarioActual.HoraInicio, horarioActual.HoraFin, horarioActual.Dia, miPractica.IdPractica, horarioActual.SalonDeClase.NumeroSalon);
                    //}
                    //else
                    //    retorno = false;
                }
            }
            else
                retorno = false;

            return retorno;
        }


        public List<Materia> ConsultarListaMateriasPractica(string nombreEscuela)
        {
            return new SqlServerPractica().ConsultarListaMateriasPractica(nombreEscuela);
        }

        /* HASTA AQUI ESTA IMPLEMENTADO */

                //public String ConsultarDatosPractica(int idPractica)
                //{
                //    return null;
                //}

                //public List<String> ConsultarHorasPracticas(int idpractica)
                //{
                //    return null;
                //}

                //public List<String> ConsultarHorario(String dia)
                //{
                //    return null;
                //}

                //public List<String> ConsultarSeccionMateria(int idEscuela)
                //{
                //    return null;
                //}

                //public List<String> ConsultarNombrePractica(int idSeccionMateria)
                //{
                //    return null;
                //}

                //public bool VerificarNombrePractica(String nombrePractica, int numeroSeccionMateria)
                //{
                //    return false;
                //}

                //public bool VerificarSeccionPractica(int seccionPractica, int numeroSeccionMateria)
                //{
                //    return false;

                //}
           
        #endregion VU_5 Gestionar Practicas por Materia

        #region VU_6 Gestionar Profesores

        public List<Profesor> ConsultarTodosLosProfesoresDeEscuela(int idEscuela)
        {
            return new SqlServerProfesor().ListaProfesoresPorEscuela(idEscuela);
        }

        public List<Profesor> EnlaceDatosConsultarProfesoresPorMateria(int idEscuela, string nombreMateria)
        {
            return new SqlServerProfesor().ListaProfesoresPorEscuelaMateria(idEscuela, nombreMateria);
        }

        public int EnlaceAgregarProfesorEscuela(Profesor profesor, int idEscuela)
        {
            return new SqlServerProfesor().InsertarProfesor(profesor, idEscuela);
        }

        public bool EnlaceEliminarProfesor(int idProfesor, int idEscuela)
        {
            return new SqlServerProfesor().EliminarProfesor(idProfesor,idEscuela);
        }

        public int EnlaceModificarProfesor(Profesor profesor, int idEscuela)
        {
            return new SqlServerProfesor().ModificarProfesorDeUnaEscuela(profesor, idEscuela);
        }

        public Profesor EnlaceConsultarProfesorExistente(int cedProfesor, int idEscuela)
        {
            return new SqlServerProfesor().ConsultarProfesorExistente(cedProfesor, idEscuela);
        }

        public int EnlaceAgregarProfesorExistente(Profesor profesor, int idEscuela)
        {
            return new SqlServerProfesor().AgregarProfesorExistente(profesor, idEscuela);
        }

        public List<SeccionMateria> ConsultarMateriasAsignadas(int idProfesor, int idCedula)
        {
            return new SqlServerProfesor().ListaMateriasAsignadas(idProfesor, idCedula);
        }

        public List<Materia> EnlaceConsultarMateriaEscuela(int idEscuela)
        {
            return new SqlServerProfesor().ConsultarMateriasEscuelaG8(idEscuela);
        }

        public int EnlaceDatosModificarMiPerfilProfesor(Profesor profesor)
        {
            return new SqlServerProfesor().ModificarMiPerfilProfesor(profesor);
        } 

        #endregion VU_6 Gestionar Profesores

        #region VU_7 Gestionar Esquema de Evaluacion por Profesor

        public int InsertarEvaluacion(Evaluacion miEvaluacion)
        {
            return new SqlServerEvaluacion().InsertarEvaluacion(miEvaluacion);
        }

        public bool ModificarEvaluacion(Evaluacion evaluacion)
        {
            return new SqlServerEvaluacion().ModificarEvaluacion(evaluacion);
        }

        public List<SeccionMateria> ConsultarEsquemasDeEvaluacionProfesor(Profesor profesor)
        {
            return new SqlServerEvaluacion().ConsultarEsquemasDeEvaluacionProfesor(profesor);
        }

        public List<Evaluacion> ConsultarEsquemaEvaluacionSeccion(SeccionMateria seccionMateria)
        {
            return new SqlServerEvaluacion().ConsultarEsquemaEvaluacionSeccion(seccionMateria);
        }

        public List<SeccionMateria> ConsultarEsquemasDeEvaluacionSinNotasProfesor(Profesor profesor)
        {
            return new SqlServerEvaluacion().ConsultarEsquemasDeEvaluacionSinNotasProfesor(profesor);
        }

        public bool EliminarEsquemaEvaluacion(SeccionMateria seccionMateria)
        {
            return new SqlServerEvaluacion().EliminarEsquemaEvaluacion(seccionMateria);
        }

        public List<SeccionMateria> ConsultarEsquemasEvaluacionEstudiante(Estudiante estudiante)
        {
            return new SqlServerEvaluacion().ConsultarEsquemasEvaluacionEstudiante(estudiante);
        }

        public List<Evaluacion> EsquemaEvaluacionSeccion(SeccionMateria seccion)
        {
            return new SqlServerEvaluacion().ConsultarEsquemaEvaluacionSeccion(seccion) ;
        }

        public List<SeccionMateria> ConsultarSeccionesMateriasProfesor(Profesor miProfesor)
        {
            return new SqlServerSeccionMateria().ConsultarSeccionProfesor(miProfesor.Crn);
        }

        #endregion VU_7 Gestionar Gestionar Esquema de Evaluacion por Profesor

        #region VU_8 Gestionar Notas de Estudiante

        public int InsertarNota(Nota nota)
        {
            return new SqlServerNota().AgregarNota(nota);
        }

        public List<String[]> MateriasProfesor(int idProfesor, int idPeriodo)
        {
            return null;
        }


        /// <summary>
        /// Metodo que edita los datos de una nota
        /// </summary>
        /// <param name="nota"></param>
        /// <returns></returns>
        public bool EditarNota(Nota nota)
        {
            return new SqlServerNota().EditarNota(nota);
        }

        /// <summary>
        /// Metodo que consulta todos los periodos existentes
        /// </summary>
        /// <returns></returns>
        public List<Periodo> ConsultarPeriodos()
        {
            return new SqlServerSeccionMateria().ConsultarPeriodos();
        } 

        /// <summary>
        /// Metodo que invoca el metodo que consulta todos los estudiantes por seccion
        /// </summary>
        /// <param name="seccion"></param>
        /// <returns></returns>
        public List<Estudiante> ConsultarEstudiantesSeccion(SeccionMateria seccion)
        {
            return new SqlServerNota().EstudiantesSeccion(seccion);
        }

        /// <summary>
        /// Metodo que retorna la nota de un estudiante de una evaluacion
        /// </summary>
        /// <param name="idEvaluacion"></param>
        /// <param name="idEstudiante"></param>
        /// <returns></returns>
        public Nota ObtenerNotaEstudianteEvaluacion(int idEvaluacion, int idEstudiante)
        {
            return new SqlServerNota().NotaEvaluacion(idEvaluacion, idEstudiante);
        }
        #endregion VU_8 Gestionar Notas de Estudiante

        #region VU_9 Gestionar la Carga de Archivos PDF

        public List<Universidad> ConsultarUniversidadesProfesor(int idProfesor)
        {
            return new SqlServerArchivoPdf().ConsultarUniversidadesProfesor(idProfesor);
        }
        public List<Escuela> ConsultarEscuelasProfesor(string nombreUniv, int idProfesor)
        {
            return new SqlServerArchivoPdf().ConsultarEscuelasProfesor(nombreUniv,idProfesor);
        }
        public List<Materia> ConsultarMateriasProfesorPdf(int idProfesor, string nombreUniv,string nombreEscuela)
        {
            return new SqlServerArchivoPdf().ConsultarMateriasProfesorPdf(idProfesor, nombreUniv,nombreEscuela);
        }
        public List<SeccionMateria> ConsultarSeccionesProfesorPdf(int idProfesor, string nombreUniv, string nombreEscuela, string nombreMateria)
        {
            return new SqlServerArchivoPdf().ConsultarSeccionesProfesorPdf(idProfesor, nombreUniv, nombreEscuela,nombreMateria);
        }

        public DataTable consultarArchivoProfesor(int idProfesor, int NumeroSeccion)
        {
            return null;
        }

        public DataTable consultarArchivoEstudiante(int idSeccion)
        {
            return null;
        }

        public List<String> ConsultarSeccionesProfesorArchivoPdf(String profesor)
        {
            return null;
        }

        public List<String> ConsultarCategoriaProfesorArchivoPdf(String profesor, int idSeccion)
        {
            return null;
        }

        public List<String> ConsultarNombreArchivoPdf(String profesor, int idSeccion, String nombreCategoria)
        {
            return null;
        }

        public List<String> ConsultarSeccionesEstudianteArchivoPdf(String estudiante)
        {
            return null;
        }

        public List<String> ConsultarDatosSeccionProfesorArchivoPdf(String profesor, String seccion)
        {
            return null;
        }

        public void InsertarArchivoPdf(String archivoPdf, float tamañoArchivo, String profesor, String seccion)
        {
        }

        public bool EliminarArchivoPdf(OperacionesPdf miArchivo, int IdSeccion)
        {
            return new SqlServerArchivoPdf().EliminarArchivoPdf(miArchivo, IdSeccion);
        }

        public List<Categoria> ConsultarCategorias(int idSeccion, int idProfesor)
        {
            return new SqlServerArchivoPdf().ConsultarCategorias(idSeccion, idProfesor);
        }

        public List<OperacionesPdf> ConsultarArchivosPdf(int idSeccion, int idProfesor, string categoria)
        {
            return new SqlServerArchivoPdf().ConsultarArchivosPdf(idSeccion, idProfesor, categoria);
        }

         public DataTable  ConsultarArchivoProfesor(int crn,int seccion)
        { 
            return new SqlServerArchivoPdf().consultarArchivoProfesor(crn, seccion);
        }
         public bool ConsultarInsertarArchivoPdf(OperacionesPdf archivoPdf, float tamañoArchivo, int crn, int idSeccion)
         {
             return new SqlServerArchivoPdf().InsertarArchivoPdf(archivoPdf, tamañoArchivo, crn, idSeccion);
         }

         public List<Categoria> ConsultarAllCategoriasPdf()
        {
            return new SqlServerArchivoPdf().ConsultarAllCategoriasPdf();
        }
         public List<SeccionMateria> ConsultarSeccionesEstudianteArchivoPdf(Estudiante estudiante)
        {
            return new SqlServerArchivoPdf().ConsultarSeccionesEstudianteArchivoPdf(estudiante);
        }

         public DataTable ConsultarArchivoEstudiante( int seccion)
        {
            return new SqlServerArchivoPdf().ConsultarArchivoEstudiante(seccion);
        }
      
                

        #endregion VU_9 Gestionar la Carga de Archivos PDF

        #region VU_10 Consultar Horarios de Materias e Imprimir

        public List<SeccionMateria> ConsultarSeccionesEstudiante(int estudiante)
        {
            return new SqlServerHorarioEstudiante().ConsultaMateriasDeEstudiante(estudiante);
        }

        public List<Practica> ConsultarPracticasEstudiante(int estudiante)
        {
            return new SqlServerHorarioEstudiante().ConsultarLasPracticasEstudiante(estudiante);
        }

        public List<String> ConsultarSeccionesPracticaEstudiante(String estudiante)
        {
            return null;
        }

        public List<HorarioDeClase> ConsultarHorarioSeccionEstudiante(SeccionMateria seccion)
        {
            return new SqlServerHorarioEstudiante().ConsultarHorarioSeccionEstudiante2(seccion);
        }

        public List<HorarioDeClase> ConsultarHorarioPracticaEstudiante(Practica seccion)
        {
            return new SqlServerHorarioEstudiante().ConsultarHorarioDePracticaEstudiante(seccion);
        }

        public List<SeccionMateria> ConsultarSeccionesProfesor(int profesor)
        {
            return new SqlServerHorarioProfesor().ConsultarLasSeccionesProfesor(profesor);
        }

        public List<Practica> ConsultarLasPracticasProfesor(int profesor)
        {
            return new SqlServerHorarioProfesor().ConsultarLasPracticasProfesor(profesor);
        }

        public List<HorarioDeClase> ConsultarHorarioSeccionProfesor(SeccionMateria seccion)
        {
            return new SqlServerHorarioProfesor().ConsultarLosHorariosSeccionProfesor(seccion);
        }

        public List<HorarioDeClase> ConsultarHorarioProfesor(Practica seccion)
        {
            return new SqlServerHorarioProfesor().ConsultarHorasPracticaProfesor(seccion);
        }

        public List<String> ConsultarHorarioPracticaEstudiante(String practica)
        {
            return null;
        }

        public String ConsultarNombreEscuelaMateria(String NombreMateria)
        {
            return new SqlServerMateria().ConsultaEscuelaDeMateria(NombreMateria);
        }

        public String ConsultarNombreUniversidadMateria(String NombreMateria)
        {

            return new SqlServerMateria().ConsultaUniversidadDeMateria(NombreMateria); ;
        }

        public List<String> ConsultarLaEscuelaUniversidad(int idPractica)
        {

            return new SqlServerMateria().ConsultarEscuelaUniversidad(idPractica); ;
        }

        public String ConsultarNombreUniversidadPractica(int id)
        {
            return null;
        }

        public String ConsultarNombreEscuelaMateria(int id)
        {
            return null;
        }

        public String ConsultarNombreEscuelaPractica(int id)
        {
            return null;
        }

        #endregion VU_10 Consultar Horarios de Materias e Imprimir

        #region VU_11 Consultar Estudiantes por Seccion e Imprimir

        public List<String> ConsultarTodosLosEstudiante()
        {
            return null;
        }

        public String ConsultarUnEstudiante(int ci)
        {
            return null;
        }

        public int ConsultarEstudianteExistente(int ci)
        {
            return 0;
        }

        public String ConsultarEstudianteCedula(int ci)
        {
            return null;
        }

        public String ConsultarEstudianteExpe(string expe)
        {
            return null;
        }

        public int InsertarEstudiante(String est)
        {
            return 0;
        }

        public int InsertarEstudianteEscuela(int idestudiante, int idescuela, DateTime fecha)
        {
            return 0;
        }

        #endregion VU_11 Consultar Estudiantes por Seccion e Imprimir

        #region VU_12 Obtener reportes de Material

        public List<SeccionMateria> ConsultarMateriaSeccionProfesor(int idProfesor)
        {
            return new SqlServerReporte().ConsultarMateriaSeccionProfesor(idProfesor);
        }

        public List<Evaluacion> ConsultarEvaluacionSeccion(int idSeccion)
        {
            return new SqlServerReporte().ConsultarEvaluacion(idSeccion);
        }

        public List<String> ConsultarEstudiantes(int idSeccion)
        {
            return null;
        }

        /*public List<String> ConsultarEvaluacion(int idSeccion)
        {
            return null;
        }*/

        public List<String> ConsultarNotas(int idEvaluacion)
        {
            return null;
        }

        #endregion VU_12 Obtener reportes de Material

        #region VU_13 Gestionar Horarios

        public List<Materia> ConsultarMateriasPrematriculas(Estudiante estudiante, int semestreActual)
        {
            return new SqlServerHorarioPreMatricula().ConsultarMateriasPrematricula(estudiante, semestreActual);
        }

        public List<SeccionMateria> ConsultarSeccionesDeUnaMateria (Materia materia)
        {
            return new SqlServerHorarioPreMatricula().ConsultarSeccionesDeUnaMateria(materia);
        }

        public List<HorarioDeClase> ConsultarHorarioDeClaseSeccion (SeccionMateria seccionMateria)
        {
            return new SqlServerHorarioPreMatricula().ConsultaHorarioClaseSeccion(seccionMateria);
        }
        public List<Prematricula> ConsultarPrematricula (Estudiante estudiante)
        {
            return new SqlServerHorarioPreMatricula().ConsultarPrematricula(estudiante);
        }
        public List<SeccionMateria> ConsultarInformacionPrematricula(Prematricula prematricula)
        {
            return new SqlServerHorarioPreMatricula().ConsultarInformacionPrematricula(prematricula);
        }

        public int InsertarPrematricula (Prematricula prematricula)
        {
            return new SqlServerHorarioPreMatricula().InsertarPrematricula(prematricula);
        }

        public bool InsertarPrematriculaSeccionMateria (int fkPrematricula,int fkPractica, int fkSeccionMateria)
        {
            return new SqlServerHorarioPreMatricula().InsertarPrematriculaSeccionMateria(fkPrematricula, fkPractica,
                                                                                         fkSeccionMateria);
        }
        public Estudiante ConsultarInformacionEstudiante(Estudiante estudiante)
        {
            return new SqlServerHorarioPreMatricula().ConsultarInformacionEstudiante(estudiante);
        }

        public bool EliminarPrematricula (Prematricula prematricula)
        {
            return new SqlServerHorarioPreMatricula().EliminarPrematricula(prematricula);
        }
        public bool AprobarPrematricula(Prematricula prematricula)
        {
            return new SqlServerHorarioPreMatricula().AprobarPrematricula(prematricula);
        }
        public List<Estudiante> ConsultarEstudiantesConPrematricula()
        {
            return new SqlServerHorarioPreMatricula().ConsultarEstudiantesConPrematricula();
        }
        #endregion VU_13 Gestionar Horarios

        #region VU_14 Registrarse en Sistema

        public List<Universidad> ConsultarUniversidades()
        {
            return new SqlServerUniversidad().ConsultarUniversidades();
        }

        public List<Universidad> ConsultarUniversidadesActivas()
        {
            return new SqlServerUniversidad().ConsultarUniversidadesActivas();
        }

        public List<Escuela> ConsultarEscuelasCombo(int idUniversidad)
        {
            return new SqlServerRol().ConsultarEscuelasBD(idUniversidad);
        }

        public bool validarCorreoRol(string correo)
        {
            return new SqlServerRol().ValidarCorreo(correo);
        }

        public bool VerificarProfesorRol(int ci)
        {
            return new SqlServerRol().ConsultarProfesorRol(ci);
        }

        public bool RegistrarRolProfesor(Rol miRol, int usuario)
        {
            return new SqlServerRol().InsertarRolProfesor(miRol, usuario);
        }

        public bool RegistrarRolUniversidad(Rol miRol, int usuario)
        {
            return new SqlServerRol().InsertarRolUniversidad(miRol, usuario);
        }

        public bool RegistrarRolEstudiante(Rol miRol, int usuario)
        {
            return new SqlServerRol().InsertarRolEstudiante(miRol, usuario);
        }

        public bool RegistrarRolEscuela(Rol miRol, int usuario)
        {
            return new SqlServerRol().InsertarRolEscuela(miRol, usuario);
        }

        public bool VerificarCedulaProfesor(string nacionalidad,int ci)
        {
            return new SqlServerRol().ConsultarUnProfesor(nacionalidad,ci);
        }

        public bool VerificarRolEstudiante(int ci)
        {
            return new SqlServerRol().ConsultarEstudianteRol(ci);
        }

        public bool VerificarCedulaEstudianteRol(string nacionalidad,int ci)
        {
            return new SqlServerRol().ConsultarUnEstudiante(nacionalidad,ci);
        }

               




        #endregion VU_14 Registrarse en Sistema

        #region VU_15 Gestionar de Acceso

        public int EnlaceVerificarUsuarioRolEscuela(string nickname, string password)
        {
            return new SqlServerRol().VerificarUsuarioRolEscuela(nickname, password);
        }

        public int EnlaceVerificarUsuarioRolUniversidad(string nickname, string password)
        {
            return new SqlServerRol().VerificarUsuarioRolUniversidad(nickname, password);
        }

        public int EnlaceVerificarUsuarioRolEstudiante(string nickname, string password)
        {
            return new SqlServerRol().VerificarUsuarioRolEstudiante(nickname, password);
        }

        public int EnlaceVerificarUsuarioRolProfesor(string nickname, string password)
        {
            return new SqlServerRol().VerificarUsuarioRolProfesor(nickname, password);
        }

        public Escuela EnlaceComandoCargarUsuarioDeEscuela(int idEscuela)
        {
            return new SqlServerRol().CargarUsuarioDeEscuela(idEscuela);
        }

        public Universidad EnlaceComandoCargarUsuarioDeUniversidad(int idEscuela)
        {
            return new SqlServerRol().CargarUsuarioDeUniversidad(idEscuela);
        }

        public Estudiante EnlaceComandoCargarUsuarioDeEstudiante(int idEscuela)
        {
            return new SqlServerRol().CargarUsuarioDeEstudiante(idEscuela);
        }

        public Profesor EnlaceComandoCargarUsuarioDeProfesor(int idEscuela)
        {
            return new SqlServerRol().CargarUsuarioDeProfesor(idEscuela);
        }
        #endregion VU_15 Gestionar de Acceso

        #region VU_16 Gestionar de Estudiante

        public bool AgregarEstudiante(Estudiante miEstudiante, int escuela)
        {
            return new SqlServerEstudiante().InsertarEstudianteBD(miEstudiante,escuela);
        }

        public bool VerificarCedulaEstudiante(int cedula)
        {
            return new SqlServerEstudiante().VerificarEstudianteCedula(cedula);
        }

        public bool VerificarExpedienteEstudiante(string expdiente, int escuela)
        {
            return new SqlServerEstudiante().VerificarEstudianteExpediente(expdiente, escuela);
        }

        public Estudiante BuscarEstudianteCedula(int cedula, int escuela)
        {
            return new SqlServerEstudiante().ConsultarUnEstudiantePorCedula(cedula, escuela);
        }

        public Estudiante BuscarEstudianteExpediente(int expediente, int escuela)
        {
            return new SqlServerEstudiante().ConsultarUnEstudiantePorExpediente(expediente, escuela);
        }
        #endregion

        public List<SeccionMateria> ConsultarMateriaProfesorPeriodo(Profesor profesor)
        {
            return new SqlServerMateria().ConsultarMateriaProfesorPeriodo(profesor);
        }

        public List<SeccionMateria> ConsultarMateriaEstudiantePeriodo(Estudiante estudiante)
        {
            return new SqlServerMateria().ConsultarMateriaEstudiantePeriodo(estudiante);
        }

        public List<SeccionMateria> ConsultarMateriaEscuelaPeriodo(Escuela escuela)
        {
            return new SqlServerMateria().ConsultarMateriaEscuelaPeriodo(escuela);
        }
    }
}